package com.tledu.springboot19.spider;

import com.tledu.springboot19.dao.NewsDao;
import com.tledu.springboot19.entity.News;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import us.codecraft.webmagic.ResultItems;
import us.codecraft.webmagic.Task;
import us.codecraft.webmagic.pipeline.Pipeline;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 加上这个注解之后代表，这个类会被spring 容器管理
 */
@Component
public class XLNbaPipeline implements Pipeline {

    @Autowired
    private NewsDao newsDao;

    @Override
    public void process(ResultItems resultItems, Task task) {
        // resultItems 就是pageProcessor传过来的结果
        // 处理resultItems数据
        String url = resultItems.getRequest().getUrl();
        if (!newsDao.exist(url)) {
            // 当不存在的时候进行表保存操作
            News news = new News();
            news.setUrl(url);
            news.setSource("新浪");
            news.setTitle(resultItems.get("title"));
            Date date= null;
            try {
                String dateStr = resultItems.get("sendTime");
                // 需要把字符串类型转成date类型进行保存
                //2021年07月21日 09:26
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
                date = sdf.parse(dateStr);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            news.setSendTime(date);
            news.setCategory(resultItems.get("category"));
            news.setContent(resultItems.get("content"));
            news.setContentHtml(resultItems.get("contentHtml"));
            newsDao.save(news);
        }
    }
}
